#!/usr/bin/env python3
# -*- coding: utf-8 -*-

"""
作者: gavin
创建日期: 2024-10-17
更新日期: 2024-10-17
版本: 1.1

简要描述: 将URL中的图片(假设为WebP格式)转换为PNG格式并保存

许可证:
这个文件是在CC BY-SA 4.0许可下发布的。
"""

import os
import requests
from PIL import Image
from io import BytesIO
import hashlib

def webp_to_png(url, output_dir):
    # 创建输出目录(如果不存在)
    os.makedirs(output_dir, exist_ok=True)
    
    # 从URL下载图片
    response = requests.get(url)
    if response.status_code != 200:
        print(f"下载图片失败: {url}")
        return
    
    # 检查内容类型
    content_type = response.headers.get('Content-Type', '')
    if 'image' not in content_type:
        print(f"警告: 内容可能不是图片 ({content_type})")
    
    # 打开图片
    try:
        img = Image.open(BytesIO(response.content))
    except IOError:
        print(f"无法打开图片: {url}")
        return
    
    # 生成输出文件名
    # 使用URL的MD5哈希作为文件名
    file_name = hashlib.md5(url.encode()).hexdigest() + '.png'
    output_path = os.path.join(output_dir, file_name)
    
    # 保存为PNG格式
    img.save(output_path, 'PNG')
    print(f"图片已保存: {output_path}")

# 使用示例
if __name__ == "__main__":
    url = "https://learn.lianglianglee.com/%e4%b8%93%e6%a0%8f/Kubernetes%20%e4%bb%8e%e4%b8%8a%e6%89%8b%e5%88%b0%e5%ae%9e%e8%b7%b5/assets/165d772a6493a287"
    output_dir = "D:\data\chromedownload"
    webp_to_png(url, output_dir)
